<?php
class UsersController extends Zend_Controller_Action
{
	/*
	 * Default action
	 */
	public function indexAction(){
		//in der indexAction werden hier alle Benutzer ausgeben
		//Benutzer-Objekt erstellen
		$user = new Model_User();
		$this->view->userarr_all = $user->getAll()->toArray();
		//Nur Kunden
		$this->view->userarr_clients = $user->getUsersByRoleID(Model_Role::ROLE_CLIENT)->toArray();
		//Nur Entwickler
		$this->view->userarr_developers = $user->getUsersByRoleID(Model_Role::ROLE_DEVELOPER)->toArray();
	}
	public function newAction(){
		//Wir verwenden hier zunächst das index-Template
		$this->_helper->viewRenderer('index');
		//Neuen Benutzer erstellen
		$this->view->user = array();
		$this->view->edittype = "new";
		//alle Rollen als Array übergeben
		$role = new Model_Role();
		$this->view->rolearr = $role->getAll()->toArray();
	}
	public function editAction(){
		//Wir verwenden hier zunächst das index-Template
		$this->_helper->viewRenderer('index');
		//Benutzer laden und in das Array schreiben
		$uid = $this->getRequest()->getParam("uid");
		$user = new Model_User();
		$this->view->user = $user->getUserByID($uid);
		//Wenn separate Rechnungsadress-Daten angegeben sind, eine entsprechende Variable auf true setzen
		$this->view->user['ba'] = $user->hasSeparateBillingAddress($this->view->user);
		//Edittype
		$this->view->edittype = "edit";
		//alle Rollen als Array übergeben
		$role = new Model_Role();
		$this->view->rolearr = $role->getAll()->toArray();
	}
	public function saveuserAction(){
		//Kein Viewrenderer verwenden, da wir hier nur die Rückgabewerte für AJAX ausgeben müssen
		$this->_helper->viewRenderer->setNoRender();
		//Werte aus dem Formular an das Objekt übergeben und in die Datenbank speichern:
		//Benutzer-Objekt erstellen
		$user = new Model_User();
		//Postdaten holen
		$request = new Zend_Controller_Request_Apache404();
		$data = $request->getParams();
		//User in die DB
		$id = $user->createUser($data);
		//Rückgabe für AJAX
		if($id !== false) {
			die("success");
		}
		else {
			die("error");
		}
	}
	public function edituserAction(){
		//Kein Viewrenderer verwenden, da wir hier nur die Rückgabewerte für AJAX ausgeben müssen
		$this->_helper->viewRenderer->setNoRender();
		//Werte aus dem Formular an das Objekt übergeben und in die Datenbank speichern:
		//User-Objekt erstellen
		$user = new Model_User();
		//Postdaten holen
		$request = new Zend_Controller_Request_Apache404();
		$data = $request->getParams();
		//User-ID holen
		$uid = $data['uid'];
		//User updaten
		$rows_updated = $user->updateUser($uid, $data);
		//Rückgabe für AJAX
		if($rows_updated == '1') {
			die("success");
		}
		else {
			die("error");
		}
	}
	public function ajaxgetclientsAction(){
		//Kein Viewrenderer verwenden, da wir hier nur die Rückgabewerte für AJAX ausgeben müssen
		$this->_helper->viewRenderer->setNoRender();
		//Usermodell und dann Kunden laden
		$user = new Model_User();
		$autocompletiondata = $user->getUsersByRoleID(Model_Role::ROLE_CLIENT)->toArray();
		//Ticket laden und in das Array schreiben
		$term = $this->getRequest()->getParam("term");
		
		if(isset($term)) {
		    $result = array();
		    foreach($autocompletiondata as $key => $value) {
		        if(strlen($term) == 0 || strpos(strtolower($value['firstname']." ".$value['lastname']), strtolower($term)) !== false) {
		            $result[] = '{"id":"'.$value['uid'].'","label":"'.$value['firstname']." ".$value['lastname'].'","value":"'.$value['firstname']." ".$value['lastname'].'"}';
		        }
		    }
		    
		    die("[".implode(',', $result)."]");
		}
	}
}